package com.eric.test.interfaces;

/**
 * @description:
 * @author: liuBing
 * @create: 2024-06-18 10:53
 **/
public interface InterfaceA {

    String name = "InterfaceA";

    void speak();

    void tall();

    void say();

    /**
     * 默认方法和静态方法的引入是为了解决接口升级的问题。
     * 在Java 8之前，如果要给接口添加新的方法，那么所有实现该接口的类都必须重新实现这个接口。
     * 但是，在Java 8中，我们可以通过定义默认方法和静态方法来给接口添加新的方法，这样就不会破坏已有代码的兼容性。
     * 默认方法的使用场景包括：
     * 1. 为接口添加新的方法，而不会破坏已有代码的兼容性。
     * 2. 允许接口提供默认实现，从而减少实现类的工作量。
     * -----> 默认方法可以被实现的
     */
    default void defaultMethod() {
        System.out.println("defaultMethod");
    }

    /**
     * -----> 静态方法不可以被实现
     * 静态方法的使用场景包括：提供与接口相关的工具方法，这些方法可以在接口中定义为静态方法。
     */
    static void staticMethod() {
        System.out.println("staticMethod");
    }
}
